package com.lifeng.fastssmr.utils;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;

import org.springframework.util.StringUtils;

/**
 * @Description: list和数组的工具类
 * @author  lifeng
 * @date 2016年10月26日 下午9:45:22 
 * @version V1.0
 */
public class ListAndArrayUtils {
	/**
	 * 将List<String>转换成字符串用某个字符连接起来
	 * @param joinChar
	 * @return
	 */
	public static String list2String(List<String> coll,String joinChar){
		if(coll.isEmpty() || coll == null || coll.size() == 0){
			return "";
		}
		String tempStr = "";
		for (int i=0;i<coll.size();i++) {
			if(i==(coll.size()-1)){
				tempStr = tempStr + coll.get(i);
			}else{
				tempStr = tempStr + coll.get(i) + joinChar;
			}
		}
		return tempStr;
	}
	/**
	 * 将字符串按某个字符切割
	 * @param splitChar
	 * @return
	 */
	public static String[] string2Array(String str,String splitChar){
		return str.split(splitChar);
	}
	
	/**
	 * 从数组中移除一个元素
	 * @param args
	 */
	public static String[] arrayRemoveOne(String[] arr,String value){
		if(arr.length < 1 || StringUtils.isEmpty(value)){
			return arr;
		}
		/*
		Arrays.asList()返回一个受指定数组支持的固定大小的列表。所以不能做Add、Remove等操作。
		List list = new ArrayList(Arrays.asList(userid));这样操作就可以了。
		*/
		List<String> list = new ArrayList<String>(Arrays.asList(arr));
		if(list.contains(value)){
			list.remove(value);
		}
		return list.toArray(new String[list.size()]);
	}
	
	/**
	 * 将数组转换成字符串用某个字符连接起来
	 * @param joinChar
	 * @return
	 */
	public static String array2String(String[] arr,String joinChar){
		if(arr.length == 0 || arr == null){
			return "";
		}
		String tempStr = "";
		for (int i=0;i<arr.length;i++) {
			if(i==(arr.length-1)){
				tempStr = tempStr + arr[i];
			}else{
				tempStr = tempStr + arr[i] + joinChar;
			}
		}
		return tempStr;
	}
	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		list.add("aaa");
		list.add("bbb");
		String ss = list2String(list, "~");
		System.out.println(ss);
	}
}
